#ifndef LEVELEDITORWIDGET_H
#define LEVELEDITORWIDGET_H

#include "appGlobals.h"
#include <QWidget>
#include "ui_leveleditorwidget.h"

namespace Modes { class EditorMode; }
class Document;
namespace LevelObjects { class AbstractLevelObject; }

namespace LevelModeWidgets {

class LevelEditorWidget : public QWidget
{
	Q_OBJECT

public:
	LevelEditorWidget(QPointer<Modes::EditorMode> lem, QWidget *parent = 0);

private:
	Ui::LevelEditorWidget ui;
signals:
	void selectedLevelChanged(QPointer<LevelObjects::AbstractLevelObject> level);
private slots:
	void onDocumentChanged(QPointer<Document> document);
	void onLevelCreated(QPointer<LevelObjects::AbstractLevelObject> level);
	void onLevelDeleted(QPointer<LevelObjects::AbstractLevelObject> level);
	void onSelectedLevelIndexChanged(int nIndex);
};

} // namespace LevelModeWidgets

#endif // LEVELEDITORWIDGET_H
